1. Field of the Invention
The present invention relates to methods and systems for optimizing video quality. More particularly, the present invention relates to an expandable scheme of video algorithms used to improve image quality.
2. Description of the Related Art
In a video processing system, the video signal gets processed by a number of video functions (e.g. for sharpness enhancement, noise reduction, color correction, etc.) Each of these functions may need a (small or large) number of control parameters.
However, some of these parameters will have a substantial effect on the picture quality while others will have a lesser effect. Moreover, the order of applying the various functions could be a parameter (before building the hardware, which carries out the video processing functions as modeled by software, or if we have a highly flexible reconfigurable hardware), or the video system is static and cannot be altered.
In addition to the video processing functions themselves, there are two other modules, whose complexity level would determine the quality of the final video system.
An objective image quality (OIQ) evaluator unit may vary in complexity from a simple measure of simple signals (like the rise time of the luminance signal) to a fairly complicated system that simulates the psychophysics of the human vision system (HVS). The optimization process may vary in complexity from a greedy exhaustive search engine (which requires huge computational resource, almost impossible to have in most practical situations) to a smart heuristic search methodology with less computational requirements. Thus, there are a number of possible formulizations to model the problem of video processing optimization.
According to the present invention, a system for optimizing video quality includes a scalable optimization paradigm for providing the best attainable objective image quality for the available computational resources.
An optimizing video processing system comprises:
a video processing module for processing an input of a video stream, the video processing module comprising architectural parameters for identifying an order of cascaded video functions and determining a bit precision between any consecutive cascaded functions according to an associated complexity level which correlates with a value of available computational resources;
an optimizer module for optimizing processing of the video stream, the optimizer module being in communication with the video processing module, the optimizer module comprising a plurality of optimization engines each having an associated complexity level, the optimizer module includes means for selecting an optimization engine according to a complexity level which correlates with the value of available computational resources; and
an Object Image Quality (OIQ) evaluator module for evaluating an image quality of an output of the video stream from the video processing module, the OIQ evaluator comprising a plurality of objective image quality metrics having an associated complexity level, and the OIQ evaluator module includes means for selecting a metric according to a correlation factor ri and a complexity level for the value of available computation resources.
The means for selecting the metric by the OIQ evaluator module may include determining a correlation factor R determined according to the following equation:       F    =                  max        R            ⁢              {                              ∑                          i              =              1                        n                    ⁢                                    w              i                        ⁢                          f              i                                      }              ,
wherein F is a final metric (of the quality of the video as judged by the system), F being determined by finding a set of weights wi, which when multiplied by each individual metric fi (which ranges from 1 to n) of the plurality of objective metrics maximizes the correlation factor R with a predetermined subjective evaluation.
The system may also have a computational resource analyzer for selecting the associated complexity level of at least one of the video processing module, the optimizer module, and the OIQ evaluator module.
The optimizer module may include both deterministic and non-deterministic optimization engines.
The optimizer module may include heuristic search engines comprising at least one of genetic algorithms (GA), simulated annealing (SA), tabu search (TS), simulated evolution (SE), and stochastic evolution.
At least one of the video processing module, optimizer module and OIQ evaluator module can be scalable.
The computational resource analyzer module may select the level of complexity for at least one of the video processing module, the optimizer module, and the OIQ evaluator module by detecting available computational resources for one of the modules.
A method for optimizing video algorithms for available computation resources comprises:
(a) identifying an order of cascaded video functions by a video processing module for processing of a video stream input to the video processing module according to an associated level of complexity which correlates with a value of available computational resources;
(b) selecting an optimization method for optimizing the processing of the video stream, the optimization method being selected from a plurality of optimization methods according to an associated complexity level which correlates with the value of available computational resources;
(c) evaluating an objective image quality of the video stream after the video stream is output from the video processing module;
wherein the evaluating of the objective image quality of the video stream is determined by selecting a metric from a plurality of metrics according to a correlation factor and an associated complexity level for the value of computational resources.
The evaluating of the objective image quality in step (c) may include determining a correlation factor R determined according to the following equation:       F    =                  max        R            ⁢              {                              ∑                          i              =              1                        n                    ⁢                                    w              i                        ⁢                          f              i                                      }              ,
wherein F is a final metric (the quality of the video as judged by the system), F being determined by finding a set of weights wi, which when multiplied by each individual metric fi (which ranges from 1 to n) of the plurality of metrics maximizes the correlation factor R with a predetermined subjective evaluation.
The method may further comprise:
(d) selecting the associated complexity level of at least one of step (a), (b) and (c) by a computational resource analyzer.
The plurality of optimization methods selected in step (b) may include both deterministic and non-deterministic optimization methods.
The plurality of optimization methods include heuristic search engines comprising at least one of genetic algorithms (GA), simulated annealing (SA), tabu search (TS), simulated evolution (SE), and stochastic evolution.
The associated complexity level selected in step (d) may include detecting computational resources available for at least one of steps (a), (b) and (c).
The video processing module recited in step (a) is scalable.
Step (b) may include providing a scalable optimizer for selecting the optimization method.
Step (c) may include providing a scalable objective image quality evaluator for evaluating the objective image quality.
The system may also comprise a video-processing module, an optimizer module, a scalable Objective Image Quality (OIQ) evaluator module, and a computational resource analyzer.
The video processing module comprises a plurality of video processing functions F1, F2, . . . Fn. Each function has a set of parameter Pi, lxe2x89xa6ixe2x89xa6n, which is sorted ascendingly in terms of their effect on the resulting image quality. The video processing module has its own set of architectural parameters, which describe the cascaded video processing functions"" order as well as the bit precision of the data bus between any two consecutive functions.
The optimizer module is a scalable optimizer with a plurality of possible optimization mechanisms. The optimizer module may comprise a number of optimization search engines varying in complexity and the corresponding required resources. The search engines may be exhaustive or heuristic.
The scalable OIQ-evaluator module comprises a plurality of OIQ metrics having different levels of complexity. A table of complexity levels is kept by the OIQ-evaluator module which contains all the constituent metric methods and the presumed complexity for each metric.
The computational resource analyzer module is an arbitrator, which based on the available computational resources will decide on which level of complexity for all other modules should be invoked.